package com.example.mq.mqserver.core;

import lombok.Data;

import java.io.Serializable;

/**
 * 消息的基本属性
 */
@Data
public class BasicProperties implements Serializable {

    // 消息唯一标识，使用 UUID 生成以保证唯一性
    private String messageId;

    // 消息的路由键
    // 对于 DIRECT 交换机，表示队列名
    // 对于 FANOUT 交换机，无意义（不使用）
    // 对于 TOPIC 交换机，用于与 bindingKey 匹配，决定消息投递的队列
    private String routingKey;

    // 消息持久化模式，1 表示不持久化，2 表示持久化
    private int deliverMode = 1;

    @Override
    public String toString() {
        return "BasicProperties{" +
                "messageId='" + messageId + '\'' +
                ", routingKey='" + routingKey + '\'' +
                ", deliverMode=" + deliverMode +
                '}';
    }
}
